package com.libre.workflow.service;

import org.flowable.engine.repository.Deployment;
import org.flowable.ui.modeler.model.ModelRepresentation;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * @description 模型管理 创建/删除/发布
 * @author 庞留杰
 * @date 2020/9/11 18:01
 * @version V1.0
 **/
public interface MyResourceService {

    /**
     * 功能描述: 查看流程图片/XML【查看图片：只是一个图片，不会显示执行到那个节点】
     */
    void resourceRead(String processDefinitionId, String processInstanceId, String resourceType, HttpServletResponse response) throws Exception;

    /**
     * 功能描述: 生成当前流程图表【会显示执行到那个节点，但是一旦流程结束，图片便会失效，只可以用作执行过程中的流程图展示】
     */
//    void getProcessDiagram(String processInstanceId, HttpServletResponse response) throws Exception;


    /**
     * 功能描述: 获取流程图（包含 正在进行中+已结束 的流程图）
     */
    void flowDiagram (String processInstanceId, String executionId, HttpServletResponse response) ;

    /**
     * 功能描述: 下载xml
     */
    void downloadXml(String processDefinitionId, HttpServletResponse response);


    /**
     * 部署压缩包形式的模板(.zip .bar)，主子流程定义部署", notes = "可用于一次性部署多个资源文件（.bpmn .drl .form等）
     * */
    Deployment deployByZip(String name, String category, String tenantId, MultipartFile file);

    /**
     * 功能描述: 利用此方式,可以将文件导入到"act_de_model"中
     */
    ModelRepresentation importModel(MultipartFile file, HttpServletRequest request);

}
